#include <iostream>

using namespace std;

void int2str(int n, char *str)
{
    char buf[10] = "";
    int i = 0;
    int len = 0;
    int temp = n < 0 ? -n:n;  // temp 为n的绝对值

    
    if(str == NULL) {
        return;
    }
    
    while(temp) {
         buf[i++] = (temp % 10) + '0'; // 把temp的每一位上的数存入buf
         temp /= 10;
    }
    
    len = n < 0 ? ++i: i; // 如果n是负数，则需要多一位来存储负号
    str[i] = 0;  // 末尾的\0

    while (1)
    {
        i--;
        if(buf[len-i-1]==0)
        {
            break;
        }
        str[i] = buf[len-i-1];  // 把buf里的字符拷到字符串
    }
    
    if(i==0) {
        str[i] = '-'; // 如果是负数，添加一个负号
    }
    
}


int main(int argc, char const *argv[]) {

    int nNum;
    char p[10];
    cout << "Please input an integer:";
    cin >> nNum;
    cout << "output: ";
    int2str(nNum,p);
    cout << p << endl;
    return 0;
}

